/*
 * This software code is (c) 2010 T-Mobile USA, Inc. All Rights Reserved.
 *
 * Unauthorized redistribution or further use of this material is
 * prohibited without the express permission of T-Mobile USA, Inc. and
 * will be prosecuted to the fullest extent of the law.
 *
 * Removal or modification of these Terms and Conditions from the source
 * or binary code of this software is prohibited.  In the event that
 * redistribution of the source or binary code for this software is
 * approved by T-Mobile USA, Inc., these Terms and Conditions and the
 * above copyright notice must be reproduced in their entirety and in all
 * circumstances.
 *
 * No name or trademarks of T-Mobile USA, Inc., or of its parent company,
 * Deutsche Telekom AG or any Deutsche Telekom or T-Mobile entity, may be
 * used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" AND "WITH ALL FAULTS" BASIS
 * AND WITHOUT WARRANTIES OF ANY KIND.  ALL EXPRESS OR IMPLIED
 * CONDITIONS, REPRESENTATIONS OR WARRANTIES, INCLUDING ANY IMPLIED
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
 * NON-INFRINGEMENT CONCERNING THIS SOFTWARE, ITS SOURCE OR BINARY CODE
 * OR ANY DERIVATIVES THEREOF ARE HEREBY EXCLUDED.  T-MOBILE USA, INC.
 * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE
 * OR ITS DERIVATIVES.  IN NO EVENT WILL T-MOBILE USA, INC. OR ITS
 * LICENSORS BE LIABLE FOR LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
 * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
 * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT
 * OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF T-MOBILE USA,
 * INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * THESE TERMS AND CONDITIONS APPLY SOLELY AND EXCLUSIVELY TO THE USE,
 * MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE, ITS SOURCE OR BINARY
 * CODE OR ANY DERIVATIVES THEREOF, AND ARE SEPARATE FROM ANY WRITTEN
 * WARRANTY THAT MAY BE PROVIDED WITH A DEVICE YOU PURCHASE FROM T-MOBILE
 * USA, INC., AND TO THE EXTENT PERMITTED BY LAW.
 */

package com.android.ims.im;

import javax.microedition.ims.android.msrp.IFileInfo;
import javax.microedition.ims.android.msrp.IFileSelector;
import javax.microedition.ims.im.FileInfo;
import javax.microedition.ims.im.FileSelector;

public class FileHelper {

    public static IFileInfo convertToIFileInfo(final FileInfo src) {

        IFileInfo iFileInfo = new IFileInfo.IFileInfoBuilder()
                .filePath(src.getFilePath())
                .fileName(src.getFileName())
                .contentType(src.getContentType())
                .creationDate(src.getCreationDate())
                .description(src.getDescription())
                .fileDisposition(src.getFileDisposition())
                .fileIcon(src.getFileIcon())
                .fileIconType(src.getFileIconType())
                .fileSize(src.getSize())
                .fileReadDate(src.getReadDate())
                .fileRange(src.getRange())
                .modificationDate(src.getModificationDate())
                .hash(src.getHash())
                .fileId(src.getFileId())
                .build();

        assert iFileInfo != null;
        return iFileInfo;
    }

    public static IFileSelector convertToIFileSelector(final FileSelector src) {

        IFileSelector iFileSelector = new IFileSelector.IFileSelectorBuilder()
                .fileName(src.getFileName())
                .contentType(src.getContentType())
                .hash(src.getHash())
                .size(src.getSize())
                .range(src.getRange())
                .fileId(src.getFileId())
                .build();

        assert iFileSelector != null;
        return iFileSelector;
    }

    public static FileSelector convertToFileSelector(final IFileSelector src) {
        FileSelector fileSelector = new FileSelector(
                src.getFileName(),
                src.getContentType(),
                src.getHash(),
                src.getSize(),
                src.getRange());

        fileSelector.setFileId(src.getFileId());

        return fileSelector;
    }

    public static FileInfo convertToFileInfo(final IFileInfo src) {
        FileInfo fileInfo = new FileInfo(
                src.getFilePath(),
                src.getContentType()
        );
        fileInfo.setCreationDate(src.getCreationDate());
        fileInfo.setDescription(src.getDescription());
        fileInfo.setFileDisposition(src.getFileDisposition());
        fileInfo.setFileIcon(src.getFileIcon(), src.getFileIconType());
        fileInfo.setSize(src.getFileSize());
        fileInfo.setReadDate(src.getFileReadDate());
        fileInfo.setRange(src.getFileRange());
        fileInfo.setModificationDate(src.getModificationDate());
        fileInfo.setHash(src.getHash());

        fileInfo.setFileId(src.getFileId());

        return fileInfo;
    }
}
